/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package validacao;

import java.util.Locale;
import java.util.ResourceBundle;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JOptionPane;
import supertrunfo.Login;

/**
 *
 * @author Daniel
 */
public class validacao {

    private static ResourceBundle myResources;

    /**
     * Construtor vazio
     */
    public validacao()
    {
          /**
         * Testa a condição da Língua atual: Português ou Inglês.
         */
        if (Login.LinguaAtual.equals("Português")) {
           myResources =  ResourceBundle.getBundle("Message_pt_BR",Locale.getDefault());
        }
        else {
           myResources =  ResourceBundle.getBundle("Message_en_US",Locale.ENGLISH);
        }
    }

     /**
     * Valida nome, permite apenas caracteres minúsculas e maiúsculas de aA a zZ e espaços em brancos.
     * Não aceita apenas um nome, é necessário ter no mínimo nome composto ou nome mais um sobrenome.
     * @param nome
     * @return true se nome for validado e false no contrário
     */
    public static boolean validarNome(String nome) {
        if (!nome.matches("[A-Z][a-zA-Z]+([ ][a-zA-Z]+)*")) {
            JOptionPane.showMessageDialog(null, myResources.getString("validacao.nome"));
            return false;
        }
        return true;
    }

     /**
     * Não aceita o campo em branco, com tamanho mínimo de 1.
     * permite qualquer caracteres não-especiais e números, com tamanho máximo de 20.
     * @param nick
     * @return true se nick for validado e false no contrário  
     */
    public static boolean validarNick(String nick) {
        if (!nick.matches("\\S{1,20}")) {
            JOptionPane.showMessageDialog(null, myResources.getString("validacao.nick"));
            return false;
        }
        return true;
    }
    
    /**
     * Valida senhas. Estas devem ter entre 6 e 18 caracteres, e as duas devem ser iguais.
     * @param senha1
     * @param senha2
     * @return true se a senha for validada e false no contrário
     */
    public static boolean validarSenha(String senha1, String senha2) {
        if (!(senha1.equals(senha2))) {
            JOptionPane.showMessageDialog(null, myResources.getString("validacao.senhaC"));
            return false;
        }

        if (senha1.length() < 6 || senha1.length() > 18) {
            JOptionPane.showMessageDialog(null, myResources.getString("validacao.senha"));
            return false;
        }

        return true;
    }

    
    /**
     *     /**
     * Valida email de acordo com padrão adotado universalmente
     * @param email
     * @return true se o email for validado e false no contrário
     */     
    public static boolean validarEmail(String email) {
         /**
         * Coloca o padrão string de email
         */ 
        Pattern p = Pattern.compile(".+@.+\\.[a-z]+");

        /**
         * Combina o string dado com o padrão
         */
        Matcher m = p.matcher(email);

        //check whether match is found   
        boolean matchFound = m.matches();

        /**
         * Checa se a combinação é válida, testando com laço de condição:
         * Sendo inválida, retorna uma caixa de mensagem "email inválido" de acordo com a língua escolhida.
         */ 
        if (matchFound) {
            return true;
        } else {
            JOptionPane.showMessageDialog(null, myResources.getString("validacao.email"));
            return false;
        }
    }
}
